package com.hds.modules.sys.controller.base;

import com.hds.common.annotation.SysLog;
import com.hds.common.utils.Constant;
import com.hds.common.utils.PageUtils;
import com.hds.common.utils.R;
import com.hds.common.validator.Assert;
import com.hds.common.validator.ValidatorUtils;
import com.hds.modules.sys.entity.base.SysCompanyEntity;
import com.hds.modules.sys.entity.base.SysMemberShipEntity;
import com.hds.modules.sys.service.base.SysCompanyService;
import com.hds.modules.sys.service.base.SysMemberShipService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

import static com.hds.common.utils.ShiroUtils.getUserId;

/**
 * 合作企业
 *
 * @Author guonan
 * @Email guonan@yewcn.com
 * @Description
 * @Date 2018/6/12 14:16
 */
@RestController
@RequestMapping("/sys/company")
public class SysCompanyController {

    @Autowired
    private SysCompanyService sysCompanyService;

    /**
     * @Params 公司名称 name;
     * @Params 激活码前缀 codePrefix eg: 百年-BN;
     * @Params 卡号前缀 cardPrefix  eg: 001,002...;
     * @param company
     * @return
     */
    @SysLog("新增或更新company")
    @PostMapping("/saveOrUpdate")
    public R saveOrUpdate(@RequestBody SysCompanyEntity company){
        ValidatorUtils.validateEntity(company);
        boolean rst = sysCompanyService.insertOrUpdate(company);

        return rst ? R.ok() : R.error();
    }


    @SysLog("查看company详情")
    @GetMapping("/info/{id}")
    public R query(@PathVariable("id") Integer id){
        Assert.isNull(id,"id不能为空");
        SysCompanyEntity company = sysCompanyService.selectById(id);

        return R.ok().put("company", company);
    }

    @SysLog("删除company")
    @GetMapping("/del/{id}")
    public R del(@PathVariable("id") Integer id){
        Assert.isNull(id,"id不能为空");
        boolean rst = sysCompanyService.deleteById(id);

        return rst ? R.ok() : R.error("删除失败");
    }

    /**
     * 所有company列表
     */
    @SysLog("company列表")
    @GetMapping("/list")
    public R list(@RequestParam Map<String, Object> params){

        PageUtils page = sysCompanyService.queryPage(params);

        return R.ok().put("page", page);
    }
}
